package com.university.evaluation.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

@Data
@TableName("t_student_info")
public class StudentInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    // 注意：数据库表没有自增ID，使用student_id作为主键
    @TableId(value = "student_id", type = IdType.INPUT)
    @TableField("student_id")
    private String studentId; // 学号，作为主键

    @TableField("user_id")
    private String userId;     // 关联用户表，对应数据库的varchar类型

    @TableField("student_name")
    private String studentName;     // 姓名，对应数据库的student_name字段

    @TableField("gender")
    private String gender;   // 性别

    @TableField("class_name")
    private String className;    // 班级名称，对应数据库的class_name字段

    @TableField("major")
    private String major;    // 专业名称

    @TableField("grade")
    private String grade;    // 年级

    @TableField("college_id")
    private String collegeId; // 学院ID

    @TableField("create_time")
    private LocalDateTime createTime; // 创建时间

    @TableField("update_time")
    private LocalDateTime updateTime; // 更新时间

    // 以下字段在当前数据库表中不存在，如果需要可以通过ALTER TABLE添加
    @TableField(exist = false)
    private LocalDate enrollmentDate; // 入学日期

    @TableField(exist = false)
    private String politicalStatus; // 政治面貌

    @TableField(exist = false)
    private String dormitory; // 宿舍

    @TableField(exist = false)
    private String homeAddress; // 家庭地址

    @TableField(exist = false)
    private String emergencyContact; // 紧急联系人

    @TableField(exist = false)
    private String emergencyPhone; // 紧急联系电话

}